Ext.onReady(function()
{
    // HANDLE AJAX
        var h_obtener_success = function(obj){
            var store = X.get('editStore');

            for (var i=0; i<store.getCount(); i++){
                store.getAt(i).set('habilitado', false);
                store.getAt(i).commit();
            }
            for ( i=0; i<obj.rows.length; i++){
                var r = store.findExact('idFuncionalidad', obj.rows[i]['idFuncionalidad']);
                store.getAt(r).set('habilitado',true);
                store.getAt(r).commit();
            }

            
        }

    // HANDLE ACTION
        var h_editar = function(row){
            X.set('editNombrePerfil', row.get('nombre'));
            X.set('editCodigoPerfil', row.get('idPerfil'));
            X.ajax({
                url: '/perfil/ajax-funcionalidades',
                params: {
                    idPerfil : row.get('idPerfil')
                },
                afterSuccess: h_obtener_success
            });
            X.get('editWindow').begin();
        }
        var h_eliminar = function(row){
            X.msg.confirm('Está seguro de eliminar el perfil "'+row.get('nombre')+'"?',
                            X.call(h_confirmar, row));
        }

    // HANDLE CONFIRM
        var h_confirmar = function(row){
            X.ajax({
                url     : '/perfil/ajax-eliminar',
                params  : {idPerfil : row.get('idPerfil')},
                afterSuccess : function (){
                    X.reload('listGrid');
                }
            });
        }

    // STORE
    X.store({
        id     : 'listStore',
        url    : '/perfil/ajax-listar',
        fields : [
            'idPerfil',
            'nombre'
        ]
    });

    // GRID
    X.grid.panel({
        id       : 'listGrid',
        title    : 'Lista de Perfiles',
        renderTo : 'layout_content',
        height   : 526,
        width    : 261,
        storeId  : 'listStore',
        tbar : new Ext.Toolbar({
            items:[
                X.form.button({text:'Crear Perfil', id:'listCrear', icon:'/img/icon_agregar.png'}),
                              {xtype:'tbseparator', id:'listEspacio'},
            ]
        }),
        columns:[
            X.grid.text  ({header: 'Nombre',    dataIndex: 'nombre', width: 200}),
            X.grid.edit  ({handler : h_editar}),
            X.grid.remove({handler : h_eliminar})
        ],
        bbar : X.grid.paging({
            pageSize : 20,
            storeId  : 'listStore'
        })
    });

    // EVENT
        X.event.button('listCrear', function(){
            X.get('creaWindow').begin();
        });

     X.win.panel({
        id       : 'listWindow',
        //title    : 'Carga de horario',
        modal    : false,
        border: false,
        items    : X.get('listGrid')
    });

    X.get('listWindow').show();
});